home *** CD-ROM | disk | FTP | other *** search
/ Aminet 34 / Aminet 34 (2000)(Schatztruhe)[!][Dec 1999].iso / Aminet / util / libs / DateLib.lha / DateLib / Developer / Oberon / Interfaces / Date.mod
Encoding:
Text File  |  1999-06-16  |  16.5 KB  |  254 lines

  1. (*
  2. **
  3. ** Copyright © 1996-1999 Dipl.-Inform. Kai Hofmann. All rights reserved.
  4. ** Registered Amiga shared library!
  5. **
  6. ** $VER: Date.mod 33.310 (16.06.99)
  7. **
  8. ** Experimental version, please report bugs/improvements!
  9. *)
  10.  
  11.  MODULE Date;
  12.  
  13.  
  14.  IMPORT
  15.    e * := Exec;
  16.  
  17.  
  18.  TYPE
  19.    MoonPhases        * = SHORTINT;
  20.    Weekdays        * = SHORTINT;
  21.    DateTexts        * = SHORTINT;
  22.    WordClass        * = SHORTINT;
  23.    Languages        * = SHORTINT;
  24.    Countries        * = SHORTINT;
  25.    Calendars        * = SHORTINT;
  26.    ChangeDay        * = SHORTINT;
  27.    DateBasePtr          * = UNTRACED POINTER TO DateBase;
  28.    DateBase             * = e.Library;
  29.  
  30.  
  31.  CONST
  32.    dateName        * = "date.library";
  33.    dateMinVersion    * = 33;
  34.    dateMinRevision    * = 310;
  35.  
  36.    (* Types for MoonPhases *)
  37.    NewMoon    * = 0;
  38.    FirstQuarter * = 1;
  39.    FullMoon    * = 2;
  40.    LastQuarter    * = 3;
  41.  
  42.    (* Types for Weekdays *)
  43.    dayerr    * = 0;
  44.    Monday    * = 1;
  45.    Tuesday    * = 2;
  46.    Wednesday    * = 3;
  47.    Thursday    * = 4;
  48.    Friday    * = 5;
  49.    Saturday    * = 6;
  50.    Sunday    * = 7;
  51.  
  52.    (* Types for DateTexts *)
  53.    day        * =  0;
  54.    month    * =  1;
  55.    year        * =  2;
  56.    week        * =  3;
  57.    weekday    * =  4;
  58.    hour        * =  5;
  59.    minute    * =  6;
  60.    second    * =  7;
  61.    yesterday    * =  8;
  62.    today    * =  9;
  63.    tomorrow    * = 10;
  64.  
  65.    (* Types for WordClass *)
  66.    singular    * = 0;
  67.    plural    * = 1;
  68.    periodical    * = 2;
  69.  
  70.    (* Types for Languages *)
  71.    Locale    * = 0;
  72.    English    * = 1;
  73.    German    * = 2;
  74.    French    * = 3;
  75.    Spanish    * = 4;
  76.    Portuguese    * = 5;
  77.    Danish    * = 6;
  78.    Italian    * = 7;
  79.    Dutch    * = 8;
  80.    Norwegian    * = 9;
  81.    Swedish    * = 10;
  82.    Polish    * = 11;
  83.    Finnish    * = 12;
  84.    Hungarian    * = 13;
  85.    Greek    * = 14;
  86.    Esperanto    * = 15;
  87.    Turkish    * = 16;
  88.    Latin    * = 17;
  89.    Russian    * = 18;
  90.    Czech    * = 19;
  91.    Catalonian    * = 20;
  92.    Serbian    * = 21;
  93.    LASTLANGUAGE    * = 22;
  94.  
  95.    (* Types for Countries *)
  96.    unknown    * = 0;
  97.    Italia    * = 1;
  98.    Deutschland    * = 2;
  99.    Schweiz    * = 3;
  100.    Danmark    * = 4;
  101.    Nederland    * = 5;
  102.    GreatBritain    * = 6;
  103.    USA        * = 7;
  104.    Sweden    * = 8;
  105.  
  106.    (* Types for Calendars *)
  107.    Julian    * = 0;
  108.    Gregorian    * = 1;
  109.    Heis        * = 2;
  110.  
  111.    (* Types for ChangeDay *)
  112.    Normal        * = 0;
  113.    WinterToSummer    * = 1;
  114.    SummerToWinter    * = 2;
  115.  
  116.  VAR
  117.    base * : DateBasePtr;
  118.  
  119.  
  120.  PROCEDURE TimeToJD *{base,-294}(hour{0}, min{1}, sec{2} : SHORTINT) : REAL;
  121.  PROCEDURE JDToTime *{base,-300}(jd{0} : REAL; VAR rhour{8}, rmin{9}, rsec{10} : SHORTINT);
  122.  PROCEDURE TimeZoneFactor *{base,-318}(degree{0} : SHORTINT) : SHORTINT;
  123.  PROCEDURE LMT *{base,-324}(secs {0} : LONGINT; meridiandegree{1}, posdegree{2} : REAL) : LONGINT;
  124.  PROCEDURE TimeToSec *{base,-330}(hour{0}, min{1}, sec{2} : SHORTINT) : LONGINT;
  125.  PROCEDURE SecToTime *{base,-336}(secs{0} : LONGINT; VAR hour{8}, min{9}, sec{10} : SHORTINT);
  126.  PROCEDURE Compare2Times *{base,-426}(hour1{0}, min1{1}, sec1{2}, hour2{3}, min2{4}, sec2{5} : SHORTINT) : SHORTINT;
  127.  PROCEDURE ValidTime *{base,-438}(hour{0}, min{1}, sec{2} : SHORTINT) : BOOLEAN;
  128.  PROCEDURE TimeDiff *{base,-468}(hour1{0}, min1{1}, sec1{2}, hour2{3}, min2{4}, sec2{5} : SHORTINT) : LONGINT;
  129.  PROCEDURE DiffTime *{base,-474}(hour{0}, min{1}, sec{2} : SHORTINT; diffsecs{3} : LONGINT; VAR rhour{8}, rmin{9}, rsec{10} : SHORTINT);
  130.  PROCEDURE FormatTime *{base,-498}(fmt{8} : POINTER TO CHAR; ChangeDay{0} : ChangeDay; ChangeHour{1} : SHORTINT; DST{2} : BOOLEAN; hour{3}, min{4}, sec{5}, zonemin{6} : SHORTINT; tstr{9} : POINTER TO CHAR);
  131.  PROCEDURE ParseTime *{base,-504}(fmt{0}, tstr{1} : POINTER TO CHAR; ChangeDay{2} : ChangeDay; ChangeHour{3} : SHORTINT; VAR DST{4} : BOOLEAN; VAR hour{8}, min{9}, sec{10} : SHORTINT; VAR zonemin{11} : SHORTINT; pfmt{5} : POINTER TO CHAR) : SHORTINT;
  132.  PROCEDURE TimeToNum *{base,-594}(hour{0}, min{1}, sec{2} : SHORTINT) : LONGINT;
  133.  PROCEDURE NumToTime *{base,-600}(num{0}: LONGINT; rhour{8}, rmin{9}, rsec{10} : SHORTINT);
  134.  
  135.  
  136.  PROCEDURE JulianLeapYear    *{base,-30}(year{0} : LONGINT) : BOOLEAN;
  137.  PROCEDURE GregorianLeapYear *{base,-36}(year{0} : LONGINT) : BOOLEAN;
  138.  PROCEDURE HeisLeapYear      *{base,-42}(year{0} : LONGINT) : BOOLEAN;
  139.  PROCEDURE JulianMonthDays    *{base,-48}(month{0} : SHORTINT; year{1} : LONGINT) : SHORTINT;
  140.  PROCEDURE GregorianMonthDays *{base,-54}(month{0} : SHORTINT; year{1} : LONGINT) : SHORTINT;
  141.  PROCEDURE HeisMonthDays      *{base,-60}(month{0} : SHORTINT; year{1} : LONGINT) : SHORTINT;
  142.  PROCEDURE JulianYearDays    *{base,-66}(year{0} : LONGINT) : LONGINT;
  143.  PROCEDURE GregorianYearDays *{base,-72}(year{0} : LONGINT) : LONGINT;
  144.  PROCEDURE HeisYearDays      *{base,-78}(year{0} : LONGINT) : LONGINT;
  145.  PROCEDURE Compare2Dates *{base,-420}(day1{0}, month1{1} : SHORTINT; year1{2} : LONGINT; day2{3}, month2{4} : SHORTINT; year2{5} : LONGINT) : SHORTINT;
  146.  PROCEDURE JulianDayDiff    *{base,-120}(day1{0}, month1{1} : SHORTINT; year1{2} : LONGINT; day2{3}, month2{4} : SHORTINT; year2{5} : LONGINT) : LONGINT;
  147.  PROCEDURE GregorianDayDiff *{base,-126}(day1{0}, month1{1} : SHORTINT; year1{2} : LONGINT; day2{3}, month2{4} : SHORTINT; year2{5} : LONGINT) : LONGINT;
  148.  PROCEDURE HeisDayDiff      *{base,-132}(day1{0}, month1{1} : SHORTINT; year1{2} : LONGINT; day2{3}, month2{4} : SHORTINT; year2{5} : LONGINT) : LONGINT;
  149.  PROCEDURE JulianWeekday    *{base,-138}(day{0}, month{1} : SHORTINT; year{2} : LONGINT) : Weekdays;
  150.  PROCEDURE GregorianWeekday *{base,-144}(day{0}, month{1} : SHORTINT; year{2} : LONGINT) : Weekdays;
  151.  PROCEDURE HeisWeekday      *{base,-150}(day{0}, month{1} : SHORTINT; year{2} : LONGINT) : Weekdays;
  152.  PROCEDURE JulianDaysBeforeWeekday    *{base,-156}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; weekday{3} : Weekdays) : SHORTINT;
  153.  PROCEDURE GregorianDaysBeforeWeekday *{base,-162}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; weekday{3} : Weekdays) : SHORTINT;
  154.  PROCEDURE HeisDaysBeforeWeekday      *{base,-168}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; weekday{3} : Weekdays) : SHORTINT;
  155.  PROCEDURE JulianDaysAfterWeekday     *{base,-174}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; weekday{3} : Weekdays) : SHORTINT;
  156.  PROCEDURE GregorianDaysAfterWeekday  *{base,-180}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; weekday{3} : Weekdays) : SHORTINT;
  157.  PROCEDURE HeisDaysAfterWeekday       *{base,-186}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; weekday{3} : Weekdays) : SHORTINT;
  158.  PROCEDURE JulianDiffDate    *{base,-192}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; days{3} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  159.  PROCEDURE GregorianDiffDate *{base,-198}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; days{3} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  160.  PROCEDURE HeisDiffDate      *{base,-204}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; days{3} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  161.  PROCEDURE JYearToScaliger *{base,-210}(year{0} : LONGINT) : LONGINT;
  162.  PROCEDURE GYearToScaliger *{base,-216}(year{0} : LONGINT) : LONGINT;
  163.  PROCEDURE HYearToScaliger *{base,-222}(year{0} : LONGINT) : LONGINT;
  164.  PROCEDURE ScaligerYearToJ *{base,-228}(syear{0} : LONGINT) : LONGINT;
  165.  PROCEDURE ScaligerYearToG *{base,-234}(syear{0} : LONGINT) : LONGINT;
  166.  PROCEDURE ScaligerYearToH *{base,-240}(syear{0} : LONGINT) : LONGINT;
  167.  PROCEDURE JSYearToJD *{base,-246}(syear{0} : LONGINT) : LONGINT;
  168.  PROCEDURE GSYearToJD *{base,-252}(syear{0} : LONGINT) : LONGINT;
  169.  PROCEDURE HSYearToJD *{base,-258}(syear{0} : LONGINT) : LONGINT;
  170.  PROCEDURE JDtoMJD *{base,-264}(jd{0} : LONGINT) : LONGINT;
  171.  PROCEDURE MJDtoJD *{base,-270}(mjd{0} : LONGINT) : LONGINT;
  172.  PROCEDURE JulianToJD    *{base,-276}(day{0}, month{1} : SHORTINT; year{2} : LONGINT) : LONGINT;
  173.  PROCEDURE GregorianToJD *{base,-282}(day{0}, month{1} : SHORTINT; year{2} : LONGINT) : LONGINT;
  174.  PROCEDURE HeisToJD      *{base,-288}(day{0}, month{1} : SHORTINT; year{2} : LONGINT) : LONGINT;
  175.  PROCEDURE GregorianMoonAge *{base,-306}(day{0}, month{1} : SHORTINT; year{2} : LONGINT) : SHORTINT;
  176.  PROCEDURE JulianEaster    *{base,-402}(year{0} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT);
  177.  PROCEDURE GregorianEaster *{base,-312}(year{0} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT);
  178.  PROCEDURE HeisEaster      *{base,-408}(year{0} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT);
  179.  PROCEDURE JulianWeek    *{base,-342}(day{0}, month{1} : SHORTINT; year{2} : LONGINT) : SHORTINT;
  180.  PROCEDURE GregorianWeek *{base,-348}(day{0}, month{1} : SHORTINT; year{2} : LONGINT) : SHORTINT;
  181.  PROCEDURE HeisWeek      *{base,-354}(day{0}, month{1} : SHORTINT; year{2} : LONGINT) : SHORTINT;
  182.  PROCEDURE WeekdayText      *{base,-360}(wday{0} : Weekdays; wtext{8} : POINTER TO CHAR; lang{1} : Languages) : SHORTINT;
  183.  PROCEDURE WeekdayShortText *{base,-272}(wday{0} : Weekdays; wtext{8} : POINTER TO CHAR; lang{1} : Languages) : SHORTINT;
  184.  PROCEDURE MonthText      *{base,-366}(month{0} : SHORTINT; mtext{8} : POINTER TO CHAR; lang{1} : Languages) : SHORTINT;
  185.  PROCEDURE MonthShortText *{base,-378}(month{0} : SHORTINT; mtext{8} : POINTER TO CHAR; lang{1} : Languages) : SHORTINT;
  186.  PROCEDURE DateText *{base,-432}(text{0} : DateTexts; mtext{8} : POINTER TO CHAR; lang{1} : Languages; wc{2} : WordClass);
  187.  PROCEDURE JDToJulian    *{base,-384}(jd{0} : LONGINT; VAR day{8}, month{9} : SHORTINT; VAR year{10} : LONGINT);
  188.  PROCEDURE JDToGregorian *{base,-390}(jd{0} : LONGINT; VAR day{8}, month{9} : SHORTINT; VAR year{10} : LONGINT);
  189.  PROCEDURE JDToHeis      *{base,-396}(jd{0} : LONGINT; VAR day{8}, month{9} : SHORTINT; VAR year{10} : LONGINT);
  190.  PROCEDURE GregorianMoonPhase *{base,-414}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; phase{3} : MoonPhases) : LONGINT;
  191.  PROCEDURE ValidJulianDate    *{base,-444}(day{0}, month{1} : SHORTINT; year{2} : LONGINT) : BOOLEAN;
  192.  PROCEDURE ValidGregorianDate *{base,-450}(day{0}, month{1} : SHORTINT; year{2} : LONGINT) : BOOLEAN;
  193.  PROCEDURE ValidHeisDate      *{base,-456}(day{0}, month{1} : SHORTINT; year{2} : LONGINT) : BOOLEAN;
  194.  PROCEDURE SetCountry *{base,-462}(country{0} : Countries);
  195.  PROCEDURE SetFirstWeekday *{base,-480}(weekday{0} : Weekdays);
  196.  PROCEDURE SupplementCentury *{base,-486}(year{0} : SHORTINT; actualyear{1} : LONGINT) : LONGINT;
  197.  PROCEDURE JulianLastMonthDay *{base,-510}(month{0} : SHORTINT; year{1} : LONGINT) : SHORTINT;
  198.  PROCEDURE GregorianLastMonthDay *{base,-516}(month{0} : SHORTINT; year{1} : LONGINT) : SHORTINT;
  199.  PROCEDURE HeisLastMonthDay *{base,-522}(month{0} : SHORTINT; year{1} : LONGINT) : SHORTINT;
  200.  PROCEDURE NextValidJulianDate *{base,-528}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  201.  PROCEDURE NextValidGregorianDate *{base,-534}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  202.  PROCEDURE NextValidHeisDate *{base,-540}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  203.  PROCEDURE PreviousValidJulianDate *{base,-546}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  204.  PROCEDURE PreviousValidGregorianDate *{base,-552}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  205.  PROCEDURE PreviousValidHeisDate *{base,-558}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  206.  PROCEDURE FormatDate *{base,-564}(fmt{8} : POINTER TO CHAR; day{0}, month{1} : SHORTINT; year{2} : LONGINT; lang{3} : Languages; tstr{9} : POINTER TO CHAR);
  207.  PROCEDURE ParseDate *{base,-570}(fmt{0},  dstr{1} : POINTER TO CHAR; lang{2} : Languages; calendar{3} : Calendars; actualjd{4} : LONGINT; VAR day{8}, month{9} : SHORTINT; VAR year{10} : LONGINT; pfmt{11} : POINTER TO CHAR; VAR plang{5} : Languages) : SHORTINT;
  208.  PROCEDURE JulianWWtoDM *{base,-576}(weekday{0} : Weekdays; week{1} : SHORTINT; year{2} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  209.  PROCEDURE GregorianWWtoDM *{base,-582}(weekday{0} : Weekdays; week{1} : SHORTINT; year{2} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  210.  PROCEDURE HeisWWtoDM *{base,-588}(weekday{0} : Weekdays; week{1} : SHORTINT; year{2} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  211.  PROCEDURE DateToNum *{base,-606}(day{0}, month{1} : SHORTINT; year{2} : LONGINT) : LONGINT;
  212.  PROCEDURE NumToDate *{base,-612}(num{0} : LONGINT; VAR day{8}, month{9} : SHORTINT; VAR year{10} : LONGINT);
  213.  PROCEDURE JulianDiffDateRange *{base,-618}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; days{3}, months{4}, years{5} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  214.  PROCEDURE GregorianDiffDateRange *{base,-624}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; days{3}, months{4}, years{5} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  215.  PROCEDURE HeisDiffDateRange *{base,-630}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; days{3}, months{4}, years{5} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT);
  216.  PROCEDURE JulianRangeDiff *{base,-636}(day1{0}, month1{1} : SHORTINT; year1{2} : LONGINT; day2{3}, month2{4} : SHORTINT; year2{5} : LONGINT; VAR days{8}, months{9} : SHORTINT; VAR years{10} : LONGINT);
  217.  PROCEDURE GregorianRangeDiff *{base,-642}(day1{0}, month1{1} : SHORTINT; year1{2} : LONGINT; day2{3}, month2{4} : SHORTINT; year2{5} : LONGINT; VAR days{8}, months{9} : SHORTINT; VAR years{10} : LONGINT);
  218.  PROCEDURE HeisRangeDiff *{base,-648}(day1{0}, month1{1} : SHORTINT; year1{2} : LONGINT; day2{3}, month2{4} : SHORTINT; year2{5} : LONGINT; VAR days{8}, months{9} : SHORTINT; VAR years{10} : LONGINT);
  219.  
  220.  PROCEDURE LeapYear *{base,-666}(year{0} : LONGINT; calendar{1} : Calendars) : BOOLEAN;
  221.  PROCEDURE MonthDays *{base,-672}(month{0} : SHORTINT; year{1} : LONGINT; calendar{2} : Calendars) : SHORTINT;
  222.  PROCEDURE YearDays *{base,-684}(year{0} : LONGINT; calendar{1} : Calendars) : LONGINT;
  223.  PROCEDURE DayDiff *{base,-690}(day1{0}, month1{1} : SHORTINT; year1{2} : LONGINT; day2{3}, month2{4} : SHORTINT; year2{5} : LONGINT; calendar{6} : Calendars) : LONGINT;
  224.  PROCEDURE Weekday *{base,-696}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; calendar{3} : Calendars) : Weekdays;
  225.  PROCEDURE DaysBeforeWeekday *{base,-702}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; weekday{3} : Weekdays; calendar{4} : Calendars) : SHORTINT;
  226.  PROCEDURE DaysAfterWeekday  *{base,-708}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; weekday{3} : Weekdays; calendar{4} : Calendars) : SHORTINT;
  227.  PROCEDURE YearToScaliger *{base,-714}(year{0} : LONGINT; calendar{1} : Calendars) : LONGINT;
  228.  PROCEDURE ScaligerYearToYear *{base,-720}(syear{0} : LONGINT; calendar{1} : Calendars) : LONGINT;
  229.  PROCEDURE SYearToJD *{base,-726}(syear{0} : LONGINT; calendar{1} : Calendars) : LONGINT;
  230.  PROCEDURE DateToJD *{base,-732}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; calendar{3} : Calendars) : LONGINT;
  231.  PROCEDURE Easter *{base,-738}(year{0} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; calendar{1} : Calendars);
  232.  PROCEDURE Week *{base,-744}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; calendar{3} : Calendars) : SHORTINT;
  233.  PROCEDURE JDToDate *{base,-750}(jd{0} : LONGINT; VAR day{8}, month{9} : SHORTINT; VAR year{10} : LONGINT; calendar{1} : Calendars);
  234.  PROCEDURE ValidDate *{base,-756}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; calendar{3} : Calendars) : BOOLEAN;
  235.  PROCEDURE LastMonthDay *{base,-678}(month{0} : SHORTINT; year{1} : LONGINT; calendar{2} : Calendars) : SHORTINT;
  236.  PROCEDURE NextValidDate *{base,-762}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT; calendar{3} : Calendars);
  237.  PROCEDURE PreviousValidDate *{base,-768}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT; calendar{3} : Calendars);
  238.  PROCEDURE WWtoDM *{base,-774}(weekday{0} : Weekdays; week{1} : SHORTINT; year{2} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT; calendar{3} : Calendars);
  239.  PROCEDURE DiffDateRange *{base,-780}(day{0}, month{1} : SHORTINT; year{2} : LONGINT; days{3}, months{4}, years{5} : LONGINT; VAR dday{8}, dmonth{9} : SHORTINT; VAR dyear{10} : LONGINT; calendar{6} : Calendars);
  240.  PROCEDURE RangeDiff *{base,-786}(day1{0}, month1{1} : SHORTINT; year1{2} : LONGINT; day2{3}, month2{4} : SHORTINT; year2{5} : LONGINT; VAR days{8}, months{9} : SHORTINT; VAR years{10} : LONGINT; calendar{6} : Calendars);
  241.  
  242.  
  243.  PROCEDURE LocalToGMT *{base,-654}(ljd{0}, lsecs{1} : LONGINT; DST{2} : BOOLEAN; zonemin{3} : SHORTINT; VAR gjd{8}, gsecs{9} : LONGINT);
  244.  PROCEDURE GMTToLocal *{base,-660}(gjd{0}, gsecs{1} : LONGINT; zonemin{2} : SHORTINT; ChangePrevDay{3} : ChangeDay; ChangeDay{4} : ChangeDay; ChangeNextDay{5} : ChangeDay; ChangeHour{6} : SHORTINT; VAR ljd{8}, lsec{9} : LONGINT; VAR DST{10} : BOOLEAN);
  245.  
  246.  
  247.  BEGIN
  248.    base := e.OpenLibrary(dateName,dateMinVersion);
  249.  CLOSE
  250.    IF base # NIL THEN
  251.      e.CloseLibrary(base);
  252.    END;
  253.  END Date.
  254.